treeview: Shorten destroy() implementation
authorTimm Bäder <mail@baedert.org>
Sat, 10 Aug 2019 06:09:36 +0000 (08:09 +0200)
committerTimm Bäder <mail@baedert.org>
Sat, 10 Aug 2019 17:51:45 +0000 (19:51 +0200)
gtk/gtktreeview.c

index 111a0446585eb72e0d1cacba4282f36968d49593..e7629baf09ab1b4ea05e3b08cbe4849d755505df 100644 (file)
@@ -2111,6 +2111,7 @@ static void
 gtk_tree_view_destroy (GtkWidget *widget)
 {
   GtkTreeView *tree_view = GTK_TREE_VIEW (widget);
+  GtkTreeViewPrivate *priv = gtk_tree_view_get_instance_private (tree_view);
   GList *list;
 
   gtk_tree_view_stop_editing (tree_view, TRUE);
@@ -2143,23 +2144,9 @@ gtk_tree_view_destroy (GtkWidget *widget)
       tree_view->priv->selection = NULL;
     }
 
-  if (tree_view->priv->scroll_to_path != NULL)
-    {
-      gtk_tree_row_reference_free (tree_view->priv->scroll_to_path);
-      tree_view->priv->scroll_to_path = NULL;
-    }
-
-  if (tree_view->priv->drag_dest_row != NULL)
-    {
-      gtk_tree_row_reference_free (tree_view->priv->drag_dest_row);
-      tree_view->priv->drag_dest_row = NULL;
-    }
-
-  if (tree_view->priv->top_row != NULL)
-    {
-      gtk_tree_row_reference_free (tree_view->priv->top_row);
-      tree_view->priv->top_row = NULL;
-    }
+  g_clear_pointer (&priv->scroll_to_path, gtk_tree_row_reference_free);
+  g_clear_pointer (&priv->drag_dest_row, gtk_tree_row_reference_free);
+  g_clear_pointer (&priv->top_row, gtk_tree_row_reference_free);
 
   if (tree_view->priv->column_drop_func_data &&
       tree_view->priv->column_drop_func_data_destroy)
@@ -2221,19 +2208,11 @@ gtk_tree_view_destroy (GtkWidget *widget)
       tree_view->priv->row_separator_destroy (tree_view->priv->row_separator_data);
       tree_view->priv->row_separator_data = NULL;
     }
-  
+
   gtk_tree_view_set_model (tree_view, NULL);
 
-  if (tree_view->priv->hadjustment)
-    {
-      g_object_unref (tree_view->priv->hadjustment);
-      tree_view->priv->hadjustment = NULL;
-    }
-  if (tree_view->priv->vadjustment)
-    {
-      g_object_unref (tree_view->priv->vadjustment);
-      tree_view->priv->vadjustment = NULL;
-    }
+  g_clear_object (&priv->hadjustment);
+  g_clear_object (&priv->vadjustment);
 
   GTK_WIDGET_CLASS (gtk_tree_view_parent_class)->destroy (widget);
 }